Advanced multimedia processors use a parallel processing architecture whereby multiple specialized processing pipelines execute the various instructions of a command stream. For example, a multimedia processor may include pipelines for audio processing, data moving, video processing, and 3D graphics processing, which correspond to these media related functions. Due to multitasking and/or multithreading by the software, as well as programs that may employ multiple media related functions in rapid succession, the command stream for a multimedia processor is an interleaved, ordered combination of the instructions for one or more of the processing pipelines.
Mixed media applications, such as a 3D graphic overlay onto video, often require multiple processing pipelines for efficient execution. In such instances, the multiple processing pipelines required must remain synchronized while concurrently executing in order to achieve the intended mixed media effect. Command dependencies, generated by the processor driver and specifying any commands that must be executed before a particular command may itself execute, designate synchronization issues within the command stream. Because dependencies may traverse multiple pipelines in mixed media applications, inefficiencies result as dependent instructions at the head of a pipeline are blocked to await completion of instructions in another pipeline.